////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// Copyright (c) Microsoft Corporation.  All rights reserved.
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

#ifndef _DRIVERS_STATE_DEBOUNCE_DECL_H_
#define _DRIVERS_STATE_DEBOUNCE_DECL_H_ 1

//--//

struct HAL_STATE_DEBOUNCE
{
private:
    UINT32         m_debounceTime_uSec;
    HAL_COMPLETION m_callback;

public:
    void Initialize( UINT32 debounce_uSec, HAL_CALLBACK_FPN isr );

    void Change( UINT32 state );

    void Abort();
};

//--//

#endif // _DRIVERS_STATE_DEBOUNCE_DECL_H_
